type PushResult = IPush<[1, 2], '3'> // [1, 2, '3']

type IPush<A extends unknown[], P> = [...A, P]
